package main

import "fmt"

//多个类型可以实现同一个接口
//同一个结构体可以实现多个接口
//接口可以嵌套
type animal interface {
	mover
	eater
}

type mover interface {
	move()
}
type eater interface {
	eat(food string)
}

type cat struct {
	name string
	feet int8
}

//cat 实现了mover接口
func (c *cat) move() {
	fmt.Println("猫上房")
}

//cat 实现了eater接口
func (c *cat) eat(food string) {
	fmt.Printf("小猫%s爱吃%s \n", c.name, food)
}

func main() {
	var a1 animal
	a1 = &cat{"Tom", 4}
	a1.move()
}
